package com.panfeng.xcloud.boss.provider.dto.request;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

@Data
public class QuantBotDetailDTO {

    @ApiModelProperty(value = "用户Id")
    private String userId = "";
    @ApiModelProperty(value = "交易对目的币种")
    private String destinationCoin = "";
    @ApiModelProperty(value = "交易对目的源币种")
    private String sourceCoin = "";
    @ApiModelProperty(value = "交易所类型(0.okex 1.huobi 2.binance)")
    private String exchangeType = "";
    @ApiModelProperty(value = "合约交易对")
    private String contractCode = "";
    @ApiModelProperty(value = "持仓金额")
    private String positionAmount = "0";
    @ApiModelProperty(value = "持仓数量(币计)")
    private String positionNum = "0";
    @ApiModelProperty(value = "持仓数量(不确定是什么单位,该交易所下单需要什么单位就是什么单位)")
    private String positionPiece = "0";
    @ApiModelProperty(value = "合约面值(币/张)")
    private String contractCodeValue = "0";
    @ApiModelProperty(value = "持仓均价")
    private String avgPrice = "0";
    @ApiModelProperty(value = "当前买盘涨幅")
    private String bidRise = "0";
    @ApiModelProperty(value = "当前卖盘涨幅")
    private String askRise = "0";
    @ApiModelProperty(value = "最低跌幅")
    private String minFall = "0";
    @ApiModelProperty(value = "最高涨幅")
    private String highRise = "0";
    @ApiModelProperty(value = "上次涨幅")
    private String lastTimeRise = "0";
    @ApiModelProperty(value = "首单额度")
    private String initOrderPosition = "0";
    @ApiModelProperty(value = "止盈比例")
    private String stopProfitRatio = "0";
    @ApiModelProperty(value = "止盈回调")
    private String stopProfitBackRatio = "0";
    @ApiModelProperty(value = "补仓跌幅1")
    private String addPositionRatio1 = "0";
    @ApiModelProperty(value = "补仓跌幅2")
    private String addPositionRatio2 = "0";
    @ApiModelProperty(value = "补仓跌幅3")
    private String addPositionRatio3 = "0";
    @ApiModelProperty(value = "补仓跌幅4")
    private String addPositionRatio4 = "0";
    @ApiModelProperty(value = "补仓跌幅5")
    private String addPositionRatio5 = "0";
    @ApiModelProperty(value = "补仓跌幅6")
    private String addPositionRatio6 = "0";
    @ApiModelProperty(value = "补仓跌幅7")
    private String addPositionRatio7 = "0";
    @ApiModelProperty(value = "补仓跌幅8")
    private String addPositionRatio8 = "0";
    @ApiModelProperty(value = "补仓跌幅9")
    private String addPositionRatio9 = "0";
    @ApiModelProperty(value = "补仓跌幅10")
    private String addPositionRatio10 = "0";
    @ApiModelProperty(value = "补仓跌幅11")
    private String addPositionRatio11 = "0";
    @ApiModelProperty(value = "补仓跌幅12")
    private String addPositionRatio12 = "0";
    @ApiModelProperty(value = "补仓跌幅13")
    private String addPositionRatio13 = "0";
    @ApiModelProperty(value = "补仓跌幅14")
    private String addPositionRatio14 = "0";
    @ApiModelProperty(value = "补仓跌幅15")
    private String addPositionRatio15 = "0";
    @ApiModelProperty(value = "补仓跌幅16")
    private String addPositionRatio16 = "0";
    @ApiModelProperty(value = "补仓跌幅17")
    private String addPositionRatio17 = "0";
    @ApiModelProperty(value = "补仓跌幅18")
    private String addPositionRatio18 = "0";
    @ApiModelProperty(value = "补仓跌幅19")
    private String addPositionRatio19 = "0";
    @ApiModelProperty(value = "补仓跌幅20")
    private String addPositionRatio20 = "0";
    @ApiModelProperty(value = "对冲线前止损率")
    private String stopLossesRatio = "0";
    @ApiModelProperty("对冲线后止损率")
    private String stopLossProfit = "0";
    @ApiModelProperty(value = "补仓回调")
    private String addPositionBackRatio = "0";
    @ApiModelProperty(value = "循环策略(0:循环,1单次)")
    private String strategyType = "0";
    @ApiModelProperty(value = "补仓次数(倍投上限)")
    private String addCount = "0";
    @ApiModelProperty(value = "当前补仓次数")
    private String currentAddCount = "0";
    @ApiModelProperty(value = "机器人状态(0:active,1:stop)")
    private String status = "1";
    @ApiModelProperty("补仓倍数模式(0.固定倍数 1.动态倍数)")
    private String addPositionTimesModelSwitch = "0";
    @ApiModelProperty("补仓动态倍数")
    private String addPositionDynamicTimes = "0";
    @ApiModelProperty("补仓固定倍数")
    private String addPositionFixTimes = "0";
    @ApiModelProperty("加仓倍数模式(0.固定倍数 1.动态倍数)")
    private String antiAddPositionTimesModelSwitch = "0";
    @ApiModelProperty("加仓动态倍数")
    private String antiAddPositionDynamicTimes = "0";
    @ApiModelProperty("加仓固定倍数")
    private String antiAddPositionFixTimes = "0";
    @ApiModelProperty("多空方向(buy:多单 sell:空单)")
    private String direction;
    @ApiModelProperty("杠杆倍数")
    private String leverRate;
    @ApiModelProperty("是否锁仓 true:锁仓 false:未锁仓")
    private Boolean lock = false;
    @ApiModelProperty("锁仓仓位详情")
    private QuantBotLockDetailDTO quantBotLockDetailDTO;
    @ApiModelProperty("当前解锁次数")
    private String currentUnLockNum = "0";
    @ApiModelProperty("上次市价 用买盘价格")
    private String currentBidPrice = "0";
    @ApiModelProperty("多单设定对冲涨跌幅")
    private String buyStopRate = "0";
    @ApiModelProperty("空单设定对冲涨跌幅")
    private String sellStopRate = "0";
    @ApiModelProperty("解套风控需达到的补仓次数")
    private String getOffAddPositionNum = "0";
    @ApiModelProperty("运行模式 0.正常模式 1.快进快出")
    private String getOffNeedTime = "0";
    @ApiModelProperty("最近一次补仓时间(毫秒时间戳)")
    private String currentAddTime = "0";
    @ApiModelProperty("解套风控的指定解套浮动盈亏线")
    private String getOffProfitLine = "0";
    @ApiModelProperty("对冲线补仓次数")
    private String totalStopLossNumLimitAddNum = "0";
    @ApiModelProperty(value = "逆向加仓次数(加仓上限)")
    private String antiAddCount = "0";
    @ApiModelProperty(value = "当前逆向加仓次数")
    private String currentAntiAddCount = "0";
    @ApiModelProperty(value = "逆向止盈比例")
    private String antiStopProfitRatio = "0";
    @ApiModelProperty(value = "逆向加仓涨幅1")
    private String antiAddPositionRatio1 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅2")
    private String antiAddPositionRatio2 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅3")
    private String antiAddPositionRatio3 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅4")
    private String antiAddPositionRatio4 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅5")
    private String antiAddPositionRatio5 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅6")
    private String antiAddPositionRatio6 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅7")
    private String antiAddPositionRatio7 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅8")
    private String antiAddPositionRatio8 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅9")
    private String antiAddPositionRatio9 = "0";
    @ApiModelProperty(value = "逆向加仓涨幅10")
    private String antiAddPositionRatio10 = "0";

    @ApiModelProperty("上次止损或快速清仓时间(毫秒时间戳)")
    private String currentAutoClearTime = "0";
    @ApiModelProperty("涨幅是否达到过设定止盈率 true:达到过 false:未达到过")
    private Boolean achieveStopWin = false;
    @ApiModelProperty("涨幅是否达到过保本涨幅1 true:达到过 false:未达到过")
    private Boolean achieveBreakEven1 = false;
    @ApiModelProperty("涨幅是否达到过保本涨幅2 true:达到过 false:未达到过")
    private Boolean achieveBreakEven2 = false;
    @ApiModelProperty("是否发生过背离 true:发生过 false:未发生过")
    private Boolean divergence = false;
    @ApiModelProperty("交叉信号时间(毫秒时间戳)")
    private String crossTime = "0";
    @ApiModelProperty("交叉信号价格")
    private String crossPrice = "0";
    @ApiModelProperty("交叉信号蜡烛详情")
    private QuantCrossCandlerStickDetailDTO quantCrossCandlerStickDetailDTO;
    @ApiModelProperty("pinbar信号时间(毫秒时间戳)")
    private String pinbarTime = "0";
    @ApiModelProperty("pinbar蜡烛详情")
    private PinBarCandlerStickDetailDTO pinBarCandlerStickDetailDTO;

    @ApiModelProperty("是否处于可开仓状态 true:可开仓 false:不可开仓")
    private Boolean canOpen = true;
    @ApiModelProperty("atr的偏离倍率")
    private BigDecimal multipleAtr = BigDecimal.ZERO;
    @ApiModelProperty("多单连亏次数")
    private int buyStopStreakCount = 0;
    @ApiModelProperty("空单连亏次数")
    private int sellStopStreakCount = 0;
}